matlab绘图函数:举例说明surf、mesh、pcolor联系和区别 您所在的位置:网站首页 surface pro567的区别 matlab绘图函数:举例说明surf、mesh、pcolor联系和区别

matlab绘图函数:举例说明surf、mesh、pcolor联系和区别

2024-03-21 15:34| 来源: 网络整理| 查看: 265

surf:

surf(X,Y,Z) 创建一个三维曲面图,它是一个具有实心边颜色和实心面颜色的三维曲面。 该函数将矩阵 Z 中的值绘制为 X 和 Y 定义的 x-y 平面中网格上方的高度。表面的颜色根据 Z 指定的高度而变化。 surf(X,Y,Z,C) 额外指定表面颜色。

surf(Z) 创建一个曲面图,并使用 Z 中元素的列和行索引作为 x 和 y 坐标。 surf(Z,C) 指定表面颜色。

surf(ax,___) 绘制到由 ax 指定的坐标区,而不是当前坐标区。将坐标区指定为第一个输入参数。

surf(___,Name,Value) 使用一个或多个名称-值对参数指定表面属性。例如,'FaceAlpha',0.5 创建一个半透明曲面。

s = surf(___) 返回图表表面对象。创建曲面后,使用 s 对其进行修改。有关属性列表,请参阅表面属性。

mesh:

mesh(X,Y,Z) 创建一个网格图,它是一个具有实心边颜色但没有面颜色的三维曲面。 该函数将矩阵 Z 中的值绘制为 X 和 Y 定义的 x-y 平面中网格上方的高度。边缘颜色根据 Z 指定的高度而变化。 mesh(Z) 创建一个网格图,并使用 Z 中元素的列和行索引作为 x 和 y 坐标。

mesh(Z,C) 还指定边缘的颜色。 mesh(___,C) 还指定边缘的颜色。

mesh(ax,___) 绘制到由 ax 指定的坐标区,而不是当前坐标区。将坐标区指定为第一个输入参数。

mesh(___,Name,Value) 使用一个或多个名称-值对参数指定曲面属性。例如,'FaceAlpha',0.5 创建一个半透明的网格图。

pcolor:

pcolor(C) 使用矩阵 C 中的值创建伪彩色图。伪彩色图将矩阵数据显示为彩色单元格(称为面)的数组。 MATLAB将此图创建为 x-y 平面。表面由对应于面的角(或顶点)的 x 和 y 坐标网格定义。网格覆盖区域 X=1:n 和 Y=1:m,其中 [m,n] = size(C)。矩阵 C 指定顶点的颜色。每个面的颜色取决于其四个周围顶点之一的颜色。在四个顶点中,x-y 网格中最先出现的那个决定了面的颜色。

pcolor(X,Y,C) 指定顶点的 x 和 y 坐标。 C 的大小必须与 x-y 坐标网格的大小相匹配。例如,如果 X 和 Y 定义一个 m×n 网格,则 C 必须是一个 m×n 矩阵。

举例子前先看下meshgrid函数:

meshgrid:创建二维网格坐标,例子中会用到 [X,Y] = meshgrid(x,y) 根据向量 x 和 y 中包含的坐标返回二维网格坐标。  X 是一个矩阵,其中每一行都是复制向量x,Y 是一个矩阵,其中每一列都是复制向量y。 由坐标 X 和 Y 表示的网格:x作为X轴坐标,y作为Y轴坐标

[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,返回网格大小为 length(x)-by-length(x) 的方形网格坐标。

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的 3-D 网格坐标。由 X、Y 和 Z 表示的网格的大小为 length(y)-by-length(x)-by-length(z)。

[X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,返回 3-D 网格坐标,网格大小为 length(x)-by-length (x)-乘长(x)。

举例1: [X,Y] = meshgrid(-5:.5:5); %生成长和宽都是[-5,5]的网格坐标 Z = Y.*sin(X) - X.*cos(Y); figure(1); set(gcf, 'unit', 'centimeters', 'position', [10 5 28 20]); subplot(221) mesh(X,Y,Z) title('例1 mesh结果') subplot(222) surf(X,Y,Z) title('例1 surf结果') subplot(223) surf(X,Y,Z) view(0,90) title('例1 surf俯视看x-y平面结果') subplot(224) pcolor(X,Y,Z) title('例1 pcolor结果')

结果:

 举例2: [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; figure(2); set(gcf, 'unit', 'centimeters', 'position', [10 5 28 20]); subplot(221) mesh(X,Y,Z) title('例2 mesh结果') subplot(222) surf(X,Y,Z) title('例2 surf结果') subplot(223) surf(X,Y,Z) view(0,90) title('例2 surf俯视看x-y平面结果') subplot(224) pcolor(X,Y,Z) title('例2 pcolor结果')

结果:

 区别和联系:

从以上例子可以看出:

mesh生成一个带颜色的网格图,网格线的颜色和其值的大小有关 surf生成一个带颜色的曲面图,相当于对mesh生成的网格图中每个网格填充颜色,颜色和其值的大小有关

pcolor(X,Y,Z)相当于:surf(X,Y,Z),view(0,90)。即俯视看surf生成的三维曲面的x-y平面

参考:

Mesh surface plot - MATLAB mesh (mathworks.com)

Pseudocolor plot - MATLAB pcolor (mathworks.com)

Mesh surface plot - MATLAB mesh (mathworks.com)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有